A communication network may include network elements that route data traffic through the communication network. Some network elements may include a distributed architecture, in which data traffic processing may be distributed among several subsystems of a given network element. Some example subsystems of the network elements may include, but are not limited to, line cards, switches, bridges, distributors, and traffic managers.
A multifunction network element may include the distributed architecture including one or more line cards and/or a bridge. Each of the line cards may include a modular electronic device that may provide network communication functionality. For example, some line cards may include, among other things, an Ethernet switch that may switch traffic through the network element and into a local area network (LAN). Additionally, the line cards may include modules that may process data such as frames or data packets. The data packets or frames may contain information such as a source media access control (MAC) address, a destination MAC address, virtual LAN (VLAN) tags, data, or some combination thereof.
The bridge may similarly include a modular electronic device that provides network communication functionality. For example, the bridge may include, among other things, an Ethernet switch, ports, distributor, and modules to process hash rules and addresses. The modules may include processing resources and a memory configured to separate and map data received at ingress ports to output at egress ports. The data may also be flooded or multicast to all egress ports.
Additionally, communication networks may employ link aggregation. Link aggregation may generally describe the practice of using multiple network cables or ports in parallel to increase link speeds beyond the limits of any single cable or port. In link aggregation, a group or set of ports may be combined and represented as a single logical port to other components of the network system. Various elements of the communication network system may “see” the aggregated ports known as a link aggregation group (LAG) as a single logical communication port.
Additionally, communication networks may employ virtual subports. Virtual subports may be logical or virtual constructs that represent some portion of the bandwidth and/or capacity of an ingress and/or egress port. For example, an ingress port may include a 2.0 Gigabit per second (Gbps) port provisioned into a 1.2 Gbps virtual subport and a 0.8 Gbps virtual subport. The bandwidth of the ingress port may be re-provisioned periodically. Various elements of the communication network may “see” the virtual subports as a single logical communication port. By separating ports into virtual subports, network elements may provide a service interface to external network elements without allocating an entire port to each external network element.
Within network elements, data to be transmitted may generally encounter data rate limitations due to link rates of the ports, LAGs, and/or virtual subports (“links”) via which the data will be transmitted. Additionally, data to be transmitted may generally encounter data rate limitations due to hardware limitations and/or limitations in allocated hardware resources of data transmission channels serving the links. However, network elements may receive and/or generate data at rates that exceed the data rate limitations of the data transmission channels and/or links. One solution for handling data that exceeds data rate limitations is to drop the data overflow. Thus, the data is lost or applications that generated the data are prompted to retransmit the dropped data. Lost data may lead to lower data throughput. Prompting applications to retransmit the dropped data may also lead to lower data throughput. For example, prompting applications to retransmit data may cause applications to use processor resources to generate and/or transmit data that was already generated and/or transmitted using processor resources. Prompting applications to retransmit data may also cause a cycle of dropped data that further lowers data throughput. For example, upon being prompted, applications may retransmit data at the same time, and may cause the retransmitted data to again exceed link and/or hardware limits and be dropped. This cycle of dropping data and prompting its retransmission just to drop the retransmitted data may drain processor resources and may result in lower throughput.
To mitigate issues with dropped data, applications may be modified to adapt to processor resources, hardware resources and expected link rates. From the resources and limitations, the application may set a low effective throughput rate. However, such a solution may require modification of the application and/or may lead to under-utilization of network resources.
In transmissions employing connection oriented protocols, data rate control may be handled by the protocol. However, these protocols do not prevent burst transmissions that overrun link rates or hardware buffer limitations. In transmissions employing connectionless protocols, data rate control may be handled at the application layer; thus, each application may be required to handle burst transmissions to prevent overrunning link and/or hardware resources.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one example technology area where some embodiments described herein may be practiced.